package businessTier;

import core.Genre;
import core.Medium;
import core.Movie;
import core.MovieException;
import java.util.List;

/**
 * Popisuje business logiku aplikace
 * @author vojta
 */
public interface IMovieFacade {
  
    public List<Medium> getAllMedia() throws MovieException;
    public Medium getMedium(Medium medium) throws MovieException;
    public void addMedium(Medium medium) throws MovieException;
    public void removeMedium(Medium medium) throws MovieException;
    public void changeMedium(Medium medium) throws MovieException;

    public List<Genre> getAllGenres() throws MovieException;
    public Genre getGenre(Genre genre) throws MovieException;
    public void addGenre(Genre genre) throws MovieException;
    public void removeGenre(Genre genre) throws MovieException;
    public void changeGenre(Genre genre) throws MovieException;

    public List<Movie> getAllMovies() throws MovieException;
    public List<Movie> findMovies(Movie movie) throws MovieException;
    public Movie getMovie(Movie movie) throws MovieException;
    public void addMovie(Movie movie) throws MovieException;
    public void removeMovie(Movie movie) throws MovieException;
    public void changeMovie(Movie movie) throws MovieException;

    public void createDatabase() throws MovieException;

    public void close() throws MovieException;
}
